<?php

namespace Common\Service\Statis;
use Common\Service\BaseService;

/** 
 * 统计报表任务
 * @author Legend. <xcx_legender@qq.com>
 * @param 
 * @return 
 */
Class StatisTaskService extends BaseService
{
    /** 
     *  id,object_node, object_type, object_class, object_compare, object_data, create_time, status
     
        id:  TaskId   
        object_node: daily, hour.  // 结点. 天, 小时  
        object_type:   single, range, compare // 按单节点 区间求和 数据对比
        object_times:  daily: date; hour: hour, range: [date|hour]  // 天/小时/天区间/小时区间  eg.   [[2016-04-26 01], [2016-04-27 14]]
        object_compare: ""  // eg.  video.play; user.login  // 对比项 如果是compare只能做项目对比
        object_data:  {}  // 多形式的 内容.  
        -- daily, hour, range 只显示单结点-多项数据
        -- compare: 显示列表数据 只对多结点-单数据做对比
        create_time:  发起时间
        status:  状态.   downloading, pedding, ok // 日志下载中,等待计算, 计算完成
    */
   
   // 1. 发起报表任务  2. 查询日志存在 -> 不存在则开始下载 3. 开始计算  4. 报表完成

    protected $_auto = array(
        array('create_time' , NOW_TIME, self::MODEL_INSERT),
    );


    // 提交报表需求
    public function submit($data)
    {
        ksort($data);
        $md5 = md5(json_encode($data));
        $data['md5'] = $map['md5'] = $md5;
        $res = $this->where($map)->find();
        if ($res){
            $ret = [
                'id'     => $ret['id'],
                'status' => 'ok',
            ];
            return $res;
        }else{

            // 根据数据来查询是否下载了源日志
            
            
            // 如果是有下载数据 就进行计算
            
            // 返回状态



        }
    }



}